public class demo2 {
    public int waysToStep(int n) {
        if(n==1)return 1;
        else if(n==2)return 2;
        else if(n==3)return 4;
        else{
            int a=0,b=1,c=2,d=4;
            for(int i=4;i<=n;i++){
                // a=(((b%1000000007)+(c%1000000007))%1000000007+(d%1000000007))%1000000007;//数大两个数相加就已经越界了  最保险的方法是都%100000007

                //两数相加的时候一定需要去%1000000007
                a=((b+c)%1000000007+d)%1000000007;
                b=c;
                c=d;
                d=a;
            }
            return a%1000000007;
        }
    }
}